#ifndef __LOCK_H__
#define __LOCK_H__ 

#include "main.h"

#define LOCK24_Pin GPIO_PIN_5
#define LOCK24_GPIO_Port GPIOE
#define LOCK25_Pin GPIO_PIN_6
#define LOCK25_GPIO_Port GPIOE
#define LOCK26_Pin GPIO_PIN_13
#define LOCK26_GPIO_Port GPIOC
#define LOCK27_Pin GPIO_PIN_14
#define LOCK27_GPIO_Port GPIOC
#define LOCK28_Pin GPIO_PIN_15
#define LOCK28_GPIO_Port GPIOC
#define LOCK29_Pin GPIO_PIN_0
#define LOCK29_GPIO_Port GPIOC
#define LOCK30_Pin GPIO_PIN_1
#define LOCK30_GPIO_Port GPIOC
#define LOCK31_Pin GPIO_PIN_2
#define LOCK31_GPIO_Port GPIOC
#define LOCK32_Pin GPIO_PIN_3
#define LOCK32_GPIO_Port GPIOC
#define LOCK33_Pin GPIO_PIN_0
#define LOCK33_GPIO_Port GPIOA
#define LOCK34_Pin GPIO_PIN_4
#define LOCK34_GPIO_Port GPIOA
#define LOCK35_Pin GPIO_PIN_5
#define LOCK35_GPIO_Port GPIOA
#define LOCK36_Pin GPIO_PIN_6
#define LOCK36_GPIO_Port GPIOA
#define LOCK37_Pin GPIO_PIN_7
#define LOCK37_GPIO_Port GPIOA
#define LOCK38_Pin GPIO_PIN_4
#define LOCK38_GPIO_Port GPIOC
#define LOCK39_Pin GPIO_PIN_5
#define LOCK39_GPIO_Port GPIOC
#define LOCK40_Pin GPIO_PIN_7
#define LOCK40_GPIO_Port GPIOE
#define LOCK41_Pin GPIO_PIN_8
#define LOCK41_GPIO_Port GPIOE
#define LOCK42_Pin GPIO_PIN_9
#define LOCK42_GPIO_Port GPIOE
#define LOCK43_Pin GPIO_PIN_10
#define LOCK43_GPIO_Port GPIOE
#define LOCK44_Pin GPIO_PIN_11
#define LOCK44_GPIO_Port GPIOE
#define LOCK45_Pin GPIO_PIN_12
#define LOCK45_GPIO_Port GPIOE
#define LOCK46_Pin GPIO_PIN_13
#define LOCK46_GPIO_Port GPIOE
#define LOCK47_Pin GPIO_PIN_14
#define LOCK47_GPIO_Port GPIOE
#define LOCK23_Pin GPIO_PIN_15
#define LOCK23_GPIO_Port GPIOE
#define LOCK22_Pin GPIO_PIN_12
#define LOCK22_GPIO_Port GPIOB
#define LOCK21_Pin GPIO_PIN_13
#define LOCK21_GPIO_Port GPIOB
#define LOCK20_Pin GPIO_PIN_14	
#define LOCK20_GPIO_Port GPIOB
#define LOCK19_Pin GPIO_PIN_15
#define LOCK19_GPIO_Port GPIOB
#define LOCK18_Pin GPIO_PIN_8
#define LOCK18_GPIO_Port GPIOD
#define LOCK17_Pin GPIO_PIN_9
#define LOCK17_GPIO_Port GPIOD
#define LOCK16_Pin GPIO_PIN_10
#define LOCK16_GPIO_Port GPIOD
#define LOCK15_Pin GPIO_PIN_11
#define LOCK15_GPIO_Port GPIOD
#define LOCK14_Pin GPIO_PIN_12
#define LOCK14_GPIO_Port GPIOD
#define LOCK13_Pin GPIO_PIN_13
#define LOCK13_GPIO_Port GPIOD
#define LOCK12_Pin GPIO_PIN_14
#define LOCK12_GPIO_Port GPIOD
#define LOCK11_Pin GPIO_PIN_15
#define LOCK11_GPIO_Port GPIOD
#define LOCK10_Pin GPIO_PIN_6
#define LOCK10_GPIO_Port GPIOC
#define LOCK9_Pin GPIO_PIN_7
#define LOCK9_GPIO_Port GPIOC
#define LOCK8_Pin GPIO_PIN_8
#define LOCK8_GPIO_Port GPIOC
#define LOCK7_Pin GPIO_PIN_9
#define LOCK7_GPIO_Port GPIOC
#define LOCK6_Pin GPIO_PIN_8
#define LOCK6_GPIO_Port GPIOA
#define LOCK5_Pin GPIO_PIN_9
#define LOCK5_GPIO_Port GPIOA
#define LOCK4_Pin GPIO_PIN_10
#define LOCK4_GPIO_Port GPIOA
#define LOCK3_Pin GPIO_PIN_11
#define LOCK3_GPIO_Port GPIOA
#define LOCK2_Pin GPIO_PIN_12
#define LOCK2_GPIO_Port GPIOA
#define LOCK1_Pin GPIO_PIN_15
#define LOCK1_GPIO_Port GPIOA
#define LOCK0_Pin GPIO_PIN_10
#define LOCK0_GPIO_Port GPIOC

typedef struct
{
	uint32_t gpio;
	uint32_t pin;
} LOCK_GPIO_t;

extern LOCK_GPIO_t g_gpioList[];

void LockDrvInit(void);
void LockOpen(uint8_t lockNo);
void LockClose(uint8_t lockNo);
void LockCloseAll(void);




#endif /* __LOCK_H__ */

